package swimv2.servlet;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import Swimv2.GestioneAiutiRemote;
import Swimv2.UtenteRegistrato;

/**
 * Servlet implementation class InviaFeedback
 */
public class InviaFeedback extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public InviaFeedback() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//Controlla che l'utente sia loggato altrimenti lo reindirizza alla index del sito.
		HttpSession session = request.getSession();
		UtenteRegistrato user = (UtenteRegistrato) session.getAttribute("utente");
	    if (user==null){
	    	response.sendRedirect("Index.jsp");
	    	return;
	    }else if(user.getTipo().equals("amministratore")){
			response.sendRedirect("Notifiche");
			return;
		}
	    response.sendRedirect("Feedback.jsp");
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String messaggio=null;
//Controlla che l'utente sia loggato altrimenti lo reindirizza alla index del sito.
		HttpSession session = request.getSession();
		UtenteRegistrato user = (UtenteRegistrato) session.getAttribute("utente");
		if (user==null){
			response.sendRedirect("Index.jsp");
			return;
		}else if(user.getTipo().equals("amministratore")){
			response.sendRedirect("Notifiche");
			return;
		}
// Vado a recuperare il GestioneAiutiRemote per poter lavorare con i beans.
		GestioneAiutiRemote r= null;
		r= GestoreSession.gestioneAiuti();
//Vado a recuerare le informazioni che sono state passate dalla form		
		int id=-1;
		String descrizione="";
		String valutazione=null;
		id = (Integer) session.getAttribute("id");
		descrizione=request.getParameter("descrizione");
		valutazione=request.getParameter("valutazione");
//Vado a controllare se tutti i campi obbligatori sono presenti(id richiesta,Valutazione)
		if(id==-1){
			messaggio="Problema nel completare l'operazione. Riprova";
			session.setAttribute("messaggio", messaggio);
			response.sendRedirect("ElencoRichiesteAiutoInviate");
			return;
		}else if (valutazione==null)
		{
			messaggio="E' necessario selezionare una valutazione";
			session.setAttribute("messaggio", messaggio);
			response.sendRedirect("Feedback.jsp");
			return;
		}else{
//Se tutti i campi obbligatori sono presenti vado a richiedere il rilascio del feedback e se tutto va a buon fine si viene 
//reindirizzati alla servlet ElencoRichiesteAiutoInviate altrimenti vado a settare un messaggio di errore nella session e 
//si viene reindirizzati alla pagina Feedback.jsp
			if(r.rilasciaFeedback(id,Integer.parseInt(valutazione),descrizione)){
				response.sendRedirect("ElencoRichiesteAiutoInviate");
				return;
			}else{
				messaggio="Problema nel completare l'operazione. Riprova";
				session.setAttribute("messaggio", messaggio);
				response.sendRedirect("Feedback.jsp");
				return;
			}
		}
		
	}

}
